HTTP রিকোয়েস্ট প্যারামিটার গুলি সাধারণত ক্লায়েন্ট (ব্রাউজার) থেকে সার্ভারে পাঠানো হয়, এবং সার্ভলেট এসব প্যারামিটার গ্রহণ করে তাদের প্রক্রিয়া করতে সক্ষম। getParameter() এবং getParameterValues() হল দুটি প্রধান মেথড যা সার্ভলেটে HTTP রিকোয়েস্ট প্যারামিটার সংগ্রহ করতে ব্যবহৃত হয়।
এগুলো বিশেষত ওয়েব ফর্ম, URL প্যারামিটার, এবং অন্যান্য ইনপুট থেকে ডেটা সংগ্রহ করার জন্য ব্যবহৃত হয়। চলুন দেখি কিভাবে এই দুটি মেথড ব্যবহার করা হয়।
1. getParameter() মেথড
getParameter() মেথডটি HTTP রিকোয়েস্টে পাঠানো একক প্যারামিটার মূল্য (single value parameter) গ্রহণ করতে ব্যবহৃত হয়। যখন কোনো ফর্মে একটি একক মানের ইনপুট ফিল্ড থাকে, তখন আপনি এই মেথডটি ব্যবহার করে সেই মানটি গ্রহণ করতে পারেন।
Sintax:
String getParameter(String name);
এখানে:
nameহল প্যারামিটারটির নাম (যেমন ফর্ম ইনপুট ফিল্ডের নাম)।
উদাহরণ: getParameter() ব্যবহার
ধরা যাক, একটি HTML ফর্ম আছে যেটি একটি ইউজারের নাম গ্রহণ করছে:
<form action="hello" method="GET">
Name: <input type="text" name="username">
<input type="submit" value="Submit">
</form>
এখন সার্ভলেটের মাধ্যমে এই প্যারামিটার গ্রহণ করা হবে:
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// "username" প্যারামিটার গ্রহণ
String username = request.getParameter("username");
// রেসপন্সে ইউজারের নাম প্রিন্ট করা
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Hello, " + username + "!</h1>");
}
}
এখানে:
getParameter("username")মেথডটিusernameপ্যারামিটারটি গ্রহণ করে এবং সেটি ব্যবহারকারীর নাম হিসেবে রেসপন্সে প্রদর্শন করে।
2. getParameterValues() মেথড
getParameterValues() মেথডটি একটি প্যারামিটার যা একাধিক মান ধারণ করতে পারে (যেমন চেকবক্স বা সিলেক্ট বক্সের জন্য)। এটি সেই প্যারামিটারটির সমস্ত মানের একটি অ্যারে প্রদান করে।
Sintax:
String[] getParameterValues(String name);
এখানে:
nameহল প্যারামিটারটির নাম।- এটি একটি String array ফেরত দেয়, কারণ প্যারামিটারটির একাধিক মান হতে পারে।
উদাহরণ: getParameterValues() ব্যবহার
ধরা যাক, একটি HTML ফর্মে ইউজার একাধিক পছন্দ নির্বাচন করতে পারে (যেমন চেকবক্স):
<form action="preferences" method="GET">
<input type="checkbox" name="preference" value="Sports"> Sports<br>
<input type="checkbox" name="preference" value="Music"> Music<br>
<input type="checkbox" name="preference" value="Reading"> Reading<br>
<input type="submit" value="Submit">
</form>
এখন সার্ভলেটের মাধ্যমে এই প্যারামিটার গ্রহণ করা হবে:
@WebServlet("/preferences")
public class PreferencesServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// "preference" প্যারামিটারগুলো গ্রহণ
String[] preferences = request.getParameterValues("preference");
// রেসপন্সে পছন্দসমূহ প্রিন্ট করা
response.setContentType("text/html");
PrintWriter out = response.getWriter();
if (preferences != null) {
out.println("<h1>Your Preferences:</h1>");
for (String pref : preferences) {
out.println("<p>" + pref + "</p>");
}
} else {
out.println("<h1>No preferences selected!</h1>");
}
}
}
এখানে:
getParameterValues("preference")মেথডটিpreferenceপ্যারামিটারটির সমস্ত মান গ্রহণ করে এবং সেগুলি একটি অ্যারেতে ফেরত দেয়।- ইউজার যদি একাধিক চেকবক্স নির্বাচন করে, তবে সেই সমস্ত পছন্দ
preferencesঅ্যারেতে স্টোর হবে এবং ওয়েব পেজে প্রদর্শিত হবে।
3. getParameter() এবং getParameterValues() এর মধ্যে পার্থক্য
| মেথড | উদ্দেশ্য | ফেরত দেওয়ার ধরন | ব্যবহৃত হয় কোন ক্ষেত্রে |
|---|---|---|---|
getParameter() | একক প্যারামিটার গ্রহণ করে, যেমন টেক্সট ইনপুট ফিল্ড। | String | একক মানের ইনপুট (যেমন টেক্সট ইনপুট) |
getParameterValues() | একাধিক মানের প্যারামিটার গ্রহণ করে, যেমন চেকবক্স। | String array | একাধিক মানের ইনপুট (যেমন চেকবক্স, সিলেক্ট বক্স) |
4. Request Parameter এর ধরন
- Text input: যেমন
<input type="text" name="username"> - Radio buttons: একাধিক রেডিও বাটনের মধ্যে একটির মান নির্বাচন করা হয়।
- Checkboxes: একাধিক চেকবক্সের মধ্যে একাধিক মান নির্বাচন করা হতে পারে।
- Select menus: ড্রপডাউন বা সিলেক্ট বক্স থেকে এক বা একাধিক মান নির্বাচন করা যেতে পারে।
সারাংশ
getParameter() এবং getParameterValues() হল দুটি গুরুত্বপূর্ণ মেথড যা সার্ভলেটে HTTP রিকোয়েস্ট প্যারামিটার গ্রহণ করার জন্য ব্যবহৃত হয়। getParameter() একক প্যারামিটার গ্রহণ করতে ব্যবহৃত হয়, যেখানে getParameterValues() একাধিক মান ধারণকারী প্যারামিটার (যেমন চেকবক্স বা সিলেক্ট বক্স) গ্রহণ করতে ব্যবহৃত হয়। এই দুটি মেথডের মাধ্যমে আপনি ফর্ম ইনপুট এবং ইউজার থেকে আসা ডেটা সহজে গ্রহণ করে প্রক্রিয়া করতে পারেন।
Read more